//pinia 文件  管理数据

import { defineStore } from "pinia";
//引入发请求获取数据方法
import { reqGetCategory1ListData,reqGetCategory2ListData,reqGetCategory3ListData } from '@/api/product/category'
//引入接口
import type {CategoryStore} from '@/api/product/model/categoryModel'
// 2. 创建Store模块对象
export const useCategoryListStore = defineStore('categoryList',{
  state:():CategoryStore=>{
    return {
     // 有三个Id 后期实现切换的时候会用到
      category1Id: undefined,
      category2Id: undefined,
      category3Id: undefined,
      // 再准备三个数据 来存储不同等级导航项数据
      category1List: [],
      category2List: [],
      category3List: []
    }
  },
  actions:{
    // 1. 发送请求获取一级导航的函数
    async getCategory1ListData(){
      this.category1List = await reqGetCategory1ListData()
    },
    // 2、发请求获取二级数据
   async getCategory2ListData(id:number){
    this.category1Id = id//数据要在pinia里管理，所以要赋值给它
    //只要修改一级导航内容，则二三级导航应该要重置
    this.category2Id = undefined,
    this.category3Id = undefined,
    this.category3List = []//三级导航里也不应该有数据
    
    this.category2List = await reqGetCategory2ListData(id)
   },
   // 3、发请求获取三级数据
   async getCategory3ListData(id:number){
    this.category2Id = id//数据要在pinia里管理，所以要赋值给它
    // 重置三级id
    this.category3Id = undefined
    this.category3List = await reqGetCategory3ListData(id)
   },
   // 4. 设置三级导航的值
   setCategory3Id(category3Id: number) {
    this.category3Id = category3Id
  }
   
  },
  getters:{},
})



